#pragma once
#include "precompiled.h"
#include "RenderDefines.h"

/*	File : RendererManager.h
 *
 *	Performs all the rendering. THIS IS THE ONLY PLACE WHERE RENDERING
 *	SHOULD OCCUR.
 * 
 *	Has several baby RenderManagers that each specialize in rendering a
 *	different thing ( NoMaterial_RenderManager, PostEffect_RenderManager,
 *	Transparency_RenderManager, SFX_RenderManager, Light_RenderManager,
 *	Shadow_RenderManager, Material_RenderManager.
 * 	
 *	Their order is as follows: NoMaterial > Material > SFX > Transparency >
 *	Light > Shadow  > PostEffect.
 * 	
 *	See NotesOnThings for more info on rendering design.
 */

namespace RendererManager
{

	// Receive a collection of render tickets. Tickets don't need to be sorted.
	void accept_renderTicket(RenderTicket &ticket);

	void accept_renderTicket_particle(RenderTicket &ticket);

	// Render the scene.
	void Draw( glm::mat4 &projview );

	// Clear our list of tickets for a new frame.
	// If nothing has changed then don't do this.
	void Clear_Tickets();
};

